home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 45
/
Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso
/
Aminet
/
game
/
role
/
ldmud-3.2-bin.lha
/
mud
/
doc
/
efun
/
set_this_object
< prev
next >
Wrap
Text File
|
2001-04-06
|
2KB
|
38 lines
SYNOPSIS
void set_this_object(object object_to_pretend_to_be);
DESCRIPTION
This is a privileged function, only to be used in the master
object or in the simul_efun object.
It changes the result of this_object() in the using function,
and the result of previous_object() in functions called in
other objects by call_other(). Its effect will remain till
there is a return of an external function call, or another
call of set_this_object(). While executing code in the master
object's program or the primary simul_efun object's program,
set_this_object() is granted even if this_object() is altered
by set_this_object(). This does not apply to functions
inherited from other programs.
Use it with extreme care to avoid inconsistencies. After a
call of set_this_object(), some LPC-constructs might behave in
an odd manner, or even crash the system. In particular, using
global variables or calling local functions (except by
call_other) is illegal.
With the current implementation, global variables can be
accessed, but this is not guaranteed to work in subsequent
versions.
Allowed are call_other, map functions, access of local
variables (which might hold array pointers to a global array),
simple arithmetic and the assignment operators.
BUG
After set_this_object(), references to global variables and
local function should be actively caught and rejected.
SEE ALSO
this_object(E), set_this_player(E)